package tech.nuoson.wisdom.domain.speechtrans;

import lombok.Getter;

/**
 * 语音翻译过程中返回的结果（抽象类，用于实现连接状态消息和翻译结果消息）
 */
@Getter
public abstract class AbstractSpeechTransMessage<T> {
    /**
     * 消息类型
     */
    private MessageType type;
    /**
     * 消息内容
     */
    private T data;

    public AbstractSpeechTransMessage(MessageType type, T data) {
        this.type = type;
        this.data = data;
    }
    // #region -- ** 内部类型 **

    public static enum MessageType {
        /**
         * 表示连接状态的消息
         */
        STATE(0),
        /**
         * 表示翻译结果的消息
         */
        TRANS_RESULT(10);

        private int value;

        MessageType(int value) {
            this.value = value;
        }

        public int getValue() {
            return value;
        }
    }
    // #endregion

}
